A Model-driven Pointcut Language for More Robust Pointcuts
نویسندگان
چکیده
Improved modularity and separation of concerns do not only intend to aid initial development, but are conceived such that developers can better manage software complexity, evolution and reuse [9]. Paradoxically, the essential techniques that AOSD proposes to improve software modularity seem to restrict the evolvability of that software. More specifically, the pointcuts that state when and where aspects need to be invoked during the execution of the base program, are fragile to evolutions of that base program. This is because these pointcut definitions typically rely heavily on the structure of the base program. This tight coupling of the pointcut definitions to the base program’s structure and behaviour can seriously hamper the evolvability of the software [12]: it implies that all pointcuts of each aspect need to be checked and possibly revised whenever the base program evolves. This problem has been coined the fragile pointcut problem [11, 5] and causes evolution problems that are specific to aspect-oriented languages. We tackle the fragile pointcut problem by replacing the intimate dependency of pointcut definitions on the base program by a more stable dependency on a conceptual model of the program. These model-based pointcuts are less likely to change upon evolution, because they are no longer defined in terms of how the program happens to be structured at a certain point in time, but rather in terms of a model of the pro-
منابع مشابه
Application-Specific Models and Pointcuts Using a Logic Meta Language
In contemporary aspect-oriented languages, pointcuts are usually specified directly in terms of the structure of the source code. The definition of such low-level pointcuts requires aspect developers to have a profound understanding of the entire application’s implementation and often leads to complex, fragile, and hard to maintain pointcut definitions. To resolve these issues, we present an as...
متن کاملBack to the future Pointcuts as Predicates over Traces
Pointcuts in aspect-oriented languages can be seen as predicates over events in the computation of a program. The ability to express temporal relations between such events is a key feature towards more expressive pointcut languages. In this paper, we describe the design and implementation of a pointcut language within which pointcuts are predicates over the complete execution trace of the progr...
متن کاملAutomated Pattern-Based Pointcut Generation
One of the main problems in Aspect-Oriented Software Development is the so-called fragile pointcut problem. Uncovering and specifying a good robust pointcut is not an easy task. In this paper we propose to use Inductive Logic Programming, and more specifically the FOIL algorithm, to automatically identify intentional pattern-based pointcuts. We present the toolchain we implemented to induce a p...
متن کاملPointcut Design with AODL
The designing of pointcuts is a crucial step in AspectOriented software development. Pointcuts decide the places where aspects interact with the base system. Without designing these pointcuts properly, the weaving process of aspects with the base system cannot be modelled efficiently. A good design of pointcuts can ensure proper identification of join points, clear representation of advice-poin...
متن کاملAre Pointcuts a First-Class Language Feature?
This paper challenges the notion “pointcut” and its role in defining the essence of aspect-oriented programming languages. We present a conceptual experiment of explaining AOP without using the notion “pointcut” demonstrating a large subset of AOP for which simpler and better-explored notions suffice. By the remaining delta to existing aspect languages we narrow down for which precise concept t...
متن کامل